﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Home_register : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {   string fro = "itsupport@business.com.vn";
        string subj = "Administrator from IT";
        //string server="210.245.120.6";
        string ser="72.36.144.69";
        String to="06hc463@gmail.com";
        String url_vu="http://" + Page.Request.Url.Host.ToString() + Page.ResolveUrl("act.aspx");
        //Response.Write("http://" + Page.Request.Url.Host.ToString() + Page.ResolveUrl("act.aspx"));
       // Dao.Sentmail(fro, to, url_vu, "thanh", ser);
        
        
        
        // Dao.Sentmail(fro, to, "thanhvu", subj, ser);
        if (!Page.IsPostBack)
        {
            string ip;
            DateTime dt;
            string day;
            string day1;
            int x=10;
            day = DateTime.Now.ToShortDateString();                    
            ip = GetIP();                                      
            if(string.Compare(day,Dao.Select_day(ip,x))!=0)
            {
                Dao.delete(ip);
            }
            Code();            
           
        }

        
    }

    public string GetIP()
    {
        string ip;
        ip = Request.ServerVariables["REMOTE_ADDR"].ToString();
        return ip;

    }

    private void Code()
    {
        
        
        string ip;
        string code;
        string daytime;
        int num;
        int num_code;
       
        DateTime dt = DateTime.Now;        
        ip = GetIP();
        code = Dao.RandomString();
        txtcode.Text = code;
        num = 1;
        daytime =dt.ToShortDateString();

        
        if (Dao.Select(ip,daytime) > 0)
        {
            
           if (Dao.Select_try(ip, daytime) <10)
            {
                Dao.Update(ip, code);
                
            }
            
         //   if (Dao.Select(ip, daytime) > 0 && Dao.SelectCode(10) > 0)
            else
            {
                txtcode.Text = "IP ERROR";
                return;
            }          



        }
        else
            Dao.InsertCode(ip, code, num,daytime);
        

    }
    public void checkngaysinh()
    {
        try
        {
            DateTime ngaysinh = Convert.ToDateTime(Txtngaysinh.Text);            

        }
        catch (Exception ex)
        {
            error.Text = "";
            sai.Text = "";
            chonthe.Text = "";
            Loingaysinh.Text = "*";
            return;
           
        }
    }

   
    public void Kiemtra_Ngay_Taikhoan_Visa()
    {
        DateTime dt;
        dt = DateTime.Now;
        int mon = dt.Month;
        int yea = dt.Year;
        int th;
        int nm;
        //string loaithe = "select Count(*) from VisaCard where Code=@code";
        string sql = "SELECT DATEPART(year,(select ExpiredDate from VisaCard where Code=@code))";
      //  string loaithe = "select Count(*) from VisaCard where Code=@code";
        
        if (Dao.Kiemtra_Taikhoan_Visa(Dao.getMd5Hash(Txtma_taikhoan.Text)) > 0)
        {
            //&&Dao.Get_Nam_Hien_Hanh(Dao.getMd5Hash(Txtma_taikhoan.Text))<nm
            th = Dao.Get_Thang_Het_Hang_Visa(Dao.getMd5Hash(Txtma_taikhoan.Text),sql);
            nm = Dao.Get_Nam_Het_Hang_Visa(Dao.getMd5Hash(Txtma_taikhoan.Text),sql);
            try
            { 
                int thang=Convert.ToInt32(Txtthang.Text);        
                int nam = Convert.ToInt32(Txtnam.Text);          
            
                if(th==thang&&nm==nam)
                {
                    error.Text = "";
                    Loingaysinh.Text = "";
                    sai.Text = "";
                    chonthe.Text = "";
                    return;
                     
                    
                }
                else if (th != thang || nm != nam)
                {
                    Loingaysinh.Text = "";
                    sai.Text = "";
                    chonthe.Text = "";
                    error.Text = "Tài khoản này không tồn tại";
                    return;
                }
                else if (nm >yea)
                {
                    error.Text = "";
                    Loingaysinh.Text = "";
                    sai.Text = "";
                    chonthe.Text = "";
                    return;
                    
                }
                else if (nm == yea)
                {
                    if (th >=mon)
                    {
                        error.Text = "";
                        Loingaysinh.Text = "";
                        sai.Text = "";
                        chonthe.Text = "";
                        return;
                        
                    }
                    else
                    {
                        Loingaysinh.Text = "";
                        sai.Text = "";
                        chonthe.Text = "";
                        error.Text = "Tài khoản của bạn đã hết hạn sử dụng";
                        return;
                    }
                }              

            }
            catch (Exception ex)
            {
                error.Text = "";
                Loingaysinh.Text = "";
                chonthe.Text = "";
                sai.Text = "*";
                return;

            }
       


        }
        else
        {
            Loingaysinh.Text = "";
            sai.Text = "";
            error.Text = "Tài khoản của bạn không có thực";
            return;
        }
    }
    public void Kiemtra_Ngay_Taikhoan_Master()
    {
        DateTime dt;
        dt = DateTime.Now;

        int th;
        int nm;
        int mon = dt.Month;
        int yea = dt.Year;
        //string loaithe = "select Count(*) from VisaCard where Code=@code";
        string sql = "SELECT DATEPART(year,(select ExpiredDate from MasterCard where Code=@code))";
       // string loaithe = "select Count(*) from MasterCard where Code=@code";

        if (Dao.Kiemtra_Taikhoan_Master(Dao.getMd5Hash(Txtma_taikhoan.Text)) > 0)
        {
            //&&Dao.Get_Nam_Hien_Hanh(Dao.getMd5Hash(Txtma_taikhoan.Text))<nm
            th = Dao.Get_Thang_Het_Hang_Master(Dao.getMd5Hash(Txtma_taikhoan.Text), sql);
            nm = Dao.Get_Nam_Het_Hang_Master(Dao.getMd5Hash(Txtma_taikhoan.Text), sql);
            try
            {
                int thang = Convert.ToInt32(Txtthang.Text);
                int nam = Convert.ToInt32(Txtnam.Text);

                if (th == thang && nm == nam)
                {
                    error.Text = "";
                    Loingaysinh.Text = "";
                    sai.Text = "";
                    return;
                   

                }
                else if (th != thang || nm != nam)
                {
                    Loingaysinh.Text = "";
                    sai.Text = "";
                    error.Text = "Tài khoản không tồn tại";
                    return;
                }
                else if (nm > yea)
                {
                    error.Text = "";
                    Loingaysinh.Text = "";
                    sai.Text = "";
                    chonthe.Text = "";
                    return;
                   
                }
                else if (nm ==yea)
                {
                    if (th >=mon)
                    {
                        error.Text = "";
                        Loingaysinh.Text = "";
                        sai.Text = "";
                        chonthe.Text="";
                        return;
                    }
                    else
                    {
                        Loingaysinh.Text = "";
                        sai.Text = "";
                        chonthe.Text = "";
                        error.Text = "Tài khoản của bạn đã hết hạn sử dụng";
                        return;
                    }
                }

            }
            catch (Exception ex)
            {
                error.Text = "";
                Loingaysinh.Text = "";
                chonthe.Text = "";
                sai.Text = "*";
                return;

            }



        }
        else
        {
            Loingaysinh.Text = "";
            sai.Text = "";
            chonthe.Text = "";
            error.Text = "Tài khoản của bạn không tồn tại";
            return;
        }
    }
    public void Kiemtra_Makytu()
    { 
        string code=(string)txtMakytu.Text;
        string ip;       
        string daytime;
        DateTime dt = DateTime.Now;       
        ip = GetIP();       
        daytime = (string)dt.ToShortDateString();
        string kn_code = Dao.Compare(ip,daytime);

        if (string.Compare(kn_code, code) != 0)
        {
            error.Text = "Bạn nhập sai mã ký tự";
            return;

        }    
        

       
    
    }

    public void Kiemtra_Taikhoan_kh()
    {
        string loaithe = "VisaCard";
        string mas = "MasterCard";
        string visa = "VisaCard";
        loaithe = (string)Dropthe_tin_dung.SelectedItem.Text;

        if (string.Compare(loaithe, mas) == 0)
        {

            Kiemtra_Ngay_Taikhoan_Master();
            
        }
        else if (string.Compare(loaithe, visa) == 0)
        {
         

            Kiemtra_Ngay_Taikhoan_Visa();
            
        }
        else
        {
            chonthe.Text = "*";
            return;
        }
    }

    public void Doregister()
    {
        string struser = txtUserName.Text;
        string strpas1 = (string)txtPassword1.Text;
        string strpas2 = (string)txtPassword2.Text;
        string strhoten = (string)txtHoten.Text;
        string ngaysinh = (string)Txtngaysinh.Text;
        DateTime ngay_sinh = Convert.ToDateTime(Txtngaysinh.Text);
        string cmnd = (string)Txtcmnd.Text;
        string diachi = (string)Txtdiachi.Text;
        string stremail = (string)txtEmail.Text;
        string thang = (string)Txtthang.Text;
        string nam = (string)Txtnam.Text;
        string th = (string)Txtthang.Text;
        string nm = (string)Txtnam.Text;
        string loaithe;
        string chuthe = (string)txtchuthe.Text;
        string mas = "MasterCard";
        string visa = "VisaCard";
        loaithe = (string)Dropthe_tin_dung.SelectedItem.Text;
        string url_active = "http://" + Page.Request.Url.Host.ToString() + Page.ResolveUrl("act.aspx");
        string mathe = (string)Txtma_taikhoan.Text;
        string strmakytu = (string)txtMakytu.Text;
        string act = "n";
        string code;
        
        string checkpa;
        string daytime;
        DateTime dt = DateTime.Now;
        daytime = (string)dt.ToShortDateString();
        string from = "itsupport@business.com.vn";
        string subject = "Administrator from IT";
        //string server="210.245.120.6";
        string server="72.36.144.69";

        int act_code;



        if (Dao.CheckRegister(struser, strpas1, strhoten, ngaysinh, cmnd, diachi, stremail, thang, nam, mathe, strmakytu) == true)
        {
            if (string.Compare(txtPassword1.Text, txtPassword2.Text) != 0)
            {

                Loingaysinh.Text = "";
                sai.Text = "";
                chonthe.Text = "";
                error.Text = "Mật khẩu không giống nhau";
                return;
            }
            if (Dao.TestRegister(txtUserName.Text, txtEmail.Text) > 0)
            {

                Loingaysinh.Text = "";
                chonthe.Text = "";
                sai.Text = "";
                error.Text = "Tên đăng nhập hay địa chỉ email này đã tồn tại rồi";
                return;

            }
            if (Dao.IsValidEmail(txtEmail.Text) == false)
            {
                Loingaysinh.Text = "";
                chonthe.Text = "";
                sai.Text = "";
                error.Text = "Email không đúng định dạng";
                return;
            }
            if (txtHoten.Text != "")
            {
               

                   // checkngaysinh();
                   // Kiemtra_Taikhoan_kh();
                    Kiemtra_Makytu();
                    //Response.Redirect("act.aspx");               
            }
          
          
            if (Loingaysinh.Text==""&&chonthe.Text==""&&error.Text=="")
            {
                code = Dao.RandomString_Active();                
                if (Dao.Register(struser, Dao.getMd5Hash(strpas1), act, strhoten, ngay_sinh, cmnd, diachi, stremail, code) > 0)
                {
                    Session["us"] = struser;
                    Session["pa"] = strpas1;
                    string active = "";
                    active = active + "Chao mung ban la thanh vien cua IT" + "\n";
                    active = active + "Hay nhap ma so nay" + "\t" + code + "\t" + "vao đuong link" + url_active + "đe kich hoat tai khoan" + "\n";
                    active = active + "Ten đang nhap cua ban:" + Session["us"] + "\n";
                    active = active + "Mat khau cua ban:" + Session["pa"];
                    act_code = (int)Dao.Select_Act(code);

                    if (Dao.Register_Continue(act_code,chuthe,Txtma_taikhoan.Text, loaithe, Dao.getMd5Hash(Txtma_taikhoan.Text), th, nm) > 0)
                    {
                        try
                        {
                            Dao.Sentmail(from, stremail, active, subject, server);

                           // Response.Write(code);
                            //Session["ID"]=;
                            Response.Redirect("act.aspx");
                        }
                        catch (Exception ex)
                        {
                            error.Text = ex.Message;
                        }


                    }

                     //Response.Write(active);
               }
            }
          

         

        }
       


        else
        {
            cess.Text = "";
            Loingaysinh.Text = "";
            chonthe.Text = "";
            sai.Text = "";
            error.Text = "Bạn phải nhập đầy đủ thông tin vào các ô bên dưới.";
            return;


        }


    }

    protected void Login_Click(object sender, EventArgs e)
    {

       
        try
        {
            DateTime ngaysinh = Convert.ToDateTime(Txtngaysinh.Text);

        }
        catch (Exception ex)
        {
            error.Text = "";
            sai.Text = "";
            chonthe.Text = "";
            Loingaysinh.Text = "*";
            return;

        }
        Kiemtra_Taikhoan_kh();
        Doregister();

    }
}
